package srcTest;

import static org.junit.Assert.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.embeddable.EJBContainer;

import junit.framework.Assert;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import com.sumset.daos.DenunciaDao;
import com.sumset.daos.EstadoDenunciaDao;
import com.sumset.daos.PostDao;
import com.sumset.daos.TipoDenunciaDao;
import com.sumset.daos.UsuarioDao;
import com.sumset.entidades.TipoDenuncia;

public class TipoDenunciaTest {

	private static EJBContainer contenedor;
	private static TipoDenunciaDao tdd;
	
	
	
	@BeforeClass
	public static void primerMetodo() throws Exception
	{
		Map<String, String> properties = new HashMap<String, String>();
		properties.put(EJBContainer.APP_NAME, "pratica_26");
		contenedor = EJBContainer.createEJBContainer(properties);
	    tdd=(TipoDenunciaDao) contenedor.getContext().lookup("java:global/pratica_26/tipoDenunciaDao");
	    
	    TipoDenuncia td=new TipoDenuncia();
	    td.setId(0);
	    td.setDescripcion("jjj");
	    
	    tdd.insert(td);
	}
	
	
	
	@Test
	public void testInsert() throws Exception 
	{
		TipoDenuncia td=new TipoDenuncia();
	    td.setId(-1);
	    td.setDescripcion("jjj");
	    
	    tdd.insert(td);
	    
	    TipoDenuncia tdi=tdd.buscar(-1);// tipo denuncia insertada anteriormente.
	    Assert.assertNotNull(tdi);
	}

	@Test
	public void testUpdate() throws Exception
	{
		TipoDenuncia td=tdd.buscar(0);// tipo denuncia insertada en el primer metodo.
		td.setDescripcion("retales");
		
		TipoDenuncia tde=tdd.buscar(0);// tipo denuncia editada
		Assert.assertEquals("retales", tde.getDescripcion());
	}

	@Test
	public void testDelete() throws Exception 
	{
		TipoDenuncia td=tdd.buscar(-1);// tipo denuncia insertada en el  metodo de probar el insert.
		tdd.delete(td);
		
		TipoDenuncia tde=tdd.buscar(-1);// tipo denuncia eliminado anteriormente.
		Assert.assertNull(tde);
	}

	@Test
	public void testBuscar() throws Exception {
		TipoDenuncia td=tdd.buscar(0);// tipo denuncia insertada en el primer metodo.
	    Assert.assertNotNull(td);
	}

	@Test
	public void testListar() throws Exception {
		TipoDenuncia td=tdd.buscar(0);// tipo denuncia insertada en el primer metodo.
		List<TipoDenuncia> lista=tdd.listar();
		
		Assert.assertTrue(lista.contains(td));
		
	}
	
	@AfterClass
	public static void ultimoMetodo() throws Exception
	{
		TipoDenuncia td=tdd.buscar(0);// tipo denuncia insertada en el primer  metodo.
		tdd.delete(td);
	}

}
